package tech.aistar.day01;

/**
 * 本类用来演示: 基本数据类型
 *
 * @author: success
 * @date: 2021/3/4 3:39 下午
 */
public class TypeDemo {
    public static void main(String[] args) {
        System.out.println(1+2+3+"5"+1+2);//6512

        //1. 定义一个整数
        int a = 10;
        //运算符 +  - 具备重载的意义 + 具有多重的含义
        //如果出现了字符串 - "" ,表示拼接
        //如果时候纯数字,表示计算

        //可以通过变量的名称来访问变量保存的值
        System.out.println("a:"+a);

        //注意点:变量在使用之前,一定要先进行初始化操作[赋值操作]
        //int b;
        //System.out.println(b);

        //在同一个{}中,不能出现同名的变量的
        //int a = 90;//error

        //byte,short - 使用场景比较少的
        //整数的使用场景比较多的俩个类型是int和long
        byte b = 127;
        System.out.println("b:"+b);

        short s = 200;
        System.out.println("s:"+s);

        //拓展一点int类型的定义方式 - 了解一下
        //在java中看到一个整数,默认的就是int类型
        //java中凡是以0开头的,表示八进制,但是输出的时候,八进制转换成十进制
        //032八进制 = 3*8^1 + 2*8^0 = 26
        int m = 032;
        System.out.println("m:"+m);//26

        //java中以0x开头的代表十六进制
        //十六进制数字0-9,以及a~f/A~f
        //11*16^1 + 0 = 176
        int n = 0xb0;
        System.out.println("n:"+n);//176

        //长整型
        long o = 123;

        //java的类型的自动转换,整数后面加上l/L - 思考为啥加L????
        long o1 = 234L;

        //jdk7.0提供的新的语法
        long o2 = 666_555_98;//提高语义
        System.out.println("o2:"+o2);//66655598

        //关于boolean
        boolean flag = true;//或者设置false
        System.out.println("flag:"+flag);

        //char类型 - 重点 - 单独去进行讲解
        char c = '我';
        System.out.println("c:"+c);

        //double类型 - java中看到一个小数默认就是double类型
        double price = 3.45;
        System.out.println("price:"+price);

        //float类型
        float f = 3.14f;
        System.out.println("f:"+f);

        //TODO - 1. 进制换算
        //TODO - 2. char类型
        //TODO - 3. l/L  f/F  定义float类型残留的问题 - 强制类型转换和隐式转换.
    }
}

